#include <bits/stdc++.h>
using namespace std;
int T,d[100005],v[100005],a[100005],p[1000005];
int main()
{
    freopen("detect.in","r",stdin);
    freopen("detect.out","w",stdout);
    scanf("%d",&T);
    while(T--)
    {
        int n,m,l,V,ans=0;
        scanf("%d%d%d%d",&n,&m,&l,&V);
        for(int i=0;i<=l;i++)
        {
            p[i]=0;
        }
        for(int i=1;i<=n;i++)
        {
            scanf("%d%d%d",&d[i],&v[i],&a[i]);
        }
        for(int i=1;i<=m;i++)
        {
            int x;
            scanf("%d",&x);
            p[x]=1;
        }
        for(int i=1;i<=n;i++)
        {
            if(a[i]==0)
            {
                if(v[i]>V)
                {
                    for(int j=d[i];j<=l;j++)
                    {
                        if(p[j]==1)
                        {
                            ans++;
                            break;
                        }
                    }
                }
            }
            else
            {
                int cs_l=(V*V-v[i]*v[i])/(2*a[i]);
                if(a[i]>0)
                {
                    for(int j=d[i]+cs_l+1;j<=l;j++)
                    {
                        if(p[j]==1)
                        {
                            ans++;
                            break;
                        }
                    }
                }
                else
                {
                    for(int j=d[i];j<=d[i]+cs_l-1;j++)
                    {
                        if(p[j]==1)
                        {
                            ans++;
                            break;
                        }
                    }
                }
            }
        }
        if(n==0) printf("%d %d\n",ans,m);
        else printf("%d %d\n",ans,m-1);
    }


    return 0;
}
